<?php

class piezasModel extends CI_Model {

    function listar_piezas() {

        $this->db->select('piezas.va_nombre,piezas.txt_descripcion,
        precio_pieza.do_precio,piezas.idpiezas');
        $this->db->from('piezas');
        $this->db->join('precio_pieza', 'precio_pieza.idpiezas = piezas.idpiezas', 'left');
        $this->db->where('precio_pieza.va_estado', 'A');
        $query = $this->db->get();
        return json_encode($query->result_array());
    }

    function select_piezas($id) {
        $this->db->select('piezas.idpiezas,piezas.va_nombre as nombreHerramienta,piezas.txt_descripcion,
            precio_pieza.do_precio
            ');
        $this->db->from('piezas');
        $this->db->join('precio_pieza', 'precio_pieza.idpiezas = piezas.idpiezas', 'left');
        $this->db->where(array('piezas.idpiezas' => $id));
        $this->db->where('precio_pieza.va_estado', 'A');
        $query = $this->db->get();
        return json_encode($query->result_array());
    }

    function insert_pieza($pieza) {
        $this->db->trans_begin();
        $data = array(
            'va_nombre' => $pieza['nombre'],
            'txt_descripcion' => $pieza['descripcion'],
            'va_estado' => 'A',
        );

        $this->db->insert('piezas', $data);
        $id_pieza = $this->db->insert_id();

        $data = array(
            'do_precio' => $pieza['precio'],
            'da_fecha_modificacion' => date("Y-m-d H:i:s"),
            'idpiezas' => $id_pieza,
        );

        $this->db->insert('precio_pieza', $data);

        if ($this->db->trans_status() === FALSE) {
            $this->db->trans_rollback();
        } else {
            $this->db->trans_commit();
        }
    }

    function update_pieza($pieza) {

        $data = array(
            'va_nombre' => $pieza['nombre'],
            'txt_descripcion' => $pieza['descripcion']
        );

        $this->db->where('idpiezas', $pieza['idpieza']);
        $this->db->update('piezas', $data);
        //Se cambia el estado a P los precios 
        $data = array(
            'va_estado' => 'P'
        );
        $this->db->where('idpiezas', $pieza['idpieza']);
        $this->db->update('precio_pieza', $data);

        // Se inserta el nuevo precio
        $data = array(
            'do_precio' => $pieza['precio'],
            'da_fecha_modificacion' => date("Y-m-d H:i:s"),
            'idpiezas' => $pieza['idpieza'],
        );

        $this->db->insert('precio_pieza', $data);
    }

    function delete_pieza($id) {
        $this->db->delete('precio_pieza', array('idpiezas' => $id));
        $this->db->delete('piezas', array('idpiezas' => $id));
    }

    function search($searchWord) {
        $this->db->select('piezas.idpiezas,piezas.va_nombre as nombreHerramienta,piezas.txt_descripcion,
            precio_pieza.do_precio
            ');
        $this->db->from('piezas');
        $this->db->join('precio_pieza', 'precio_pieza.idpiezas = piezas.idpiezas', 'left');
        $this->db->like('piezas.va_nombre', $searchWord);
        $this->db->like('piezas.txt_descripcion', $searchWord);
        $this->db->where('precio_pieza.va_estado', 'A');

        $query = $this->db->get();
        return json_encode($query->result_array());
    }

}

?>
